<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css?v=3">
    <title>Yarn</title>
</head>
<body>
    <h1>Yarn 管理器</h1>

    <nav>
        <ul>
            <li>
                <a href="#install">1 安装</a>
                <ul>
                    <li><a href="#install-corepack">1.1 安装 Corepack</a></li>
                    <li><a href="#init-project">1.2 初始化项目</a></li>
                    <li><a href="#upgrade">1.3 升级</a></li>
                    <li><a href="#upgrade-from-sources">1.4 从源码安装最新版本</a></li>
                </ul>
            </li>

            <li>
                <a href="#usage">2 用法</a>
            </li>
        </ul>
    </nav>

    <h2 id="install">1 安装</h2>
    <h3 id="install-corepack">1.1 安装 Corepack</h3>
    <p>Yarn 官方推荐使用 <a href="https://nodejs.org/dist/latest/docs/api/corepack.html" target="_blank">Corepack</a> 管理 Yarn。Corepack 是一个 Node.js v16.10+ 自带的新命令，可以看作是管理包管理器的管理器。</p>
    <p>对于 Node.js v16.10+，需要手动开启 Corepack:</p>
    <pre>corepack enable</pre>
    <p>更早的 Node.js，需要全局安装 Corepack:</p>
    <pre>npm i -g corepack</pre>

    <h3 id="init-project">1.2 初始化项目</h3>
    <p>执行如下命令，会自动创建所需的文件：</p>
    <pre>yarn init -2</pre>
    <blockquote>注意：<code>yarn init -2</code> 会默认使用 <a href="https://yarnpkg.com/features/zero-installs" target="_blank">Zero-Installs</a>，这会把缓存数据签入仓库。如果要禁止它，需要调整 <a href="https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored" target="_blank"><code>.gitignore</code></a> 文件。</blockquote>

    <h3 id="upgrade">1.3 升级</h3>
    <p>如果想升级 Yarn 到最新版，可以执行：</p>
    <pre>yarn set version stable</pre>
    <p>安装完毕，记得重新安装项目依赖。</p>

    <h3 id="upgrade-from-sources">1.4 从源码安装最新版本</h3>
    <p>当最新的稳定版依然无法满足需求，可以从源码的 <code>master</code> 分支安装：</p>
    <pre>yarn set version from sources</pre>
    <p>如果要安装其他分支，可以使用 <code>--branch</code> 明确指定分支名：</p>
    <pre>yarn set version from sources --branch 1211</pre>

    <h2 id="usage">2 用法</h2>
    <p>
        <a href="https://yarnpkg.com/getting-started/usage" target="_blank">Usage</a>
    </p>
</body>
</html>